import axios from 'axios'
import store from '@/store'
import router from '@/router'
const ajax = axios.create({
  baseURL: 'http://toutiao.itheima.net'
})
// 请求i相应拦截器
ajax.interceptors.request.use(config => {
  // 对token做统一处理，如果vuex中有token则在请求中通过Authorization字段携带给后台
  if (store.state.token) {
    config.headers.Authorization = `Bearer ${store.state.token}`
  }
  return config
}, error => {
  return Promise.request(error)
})
// 添加响应拦截器  里面传两个参数，一个为成功的，一个为失败的
// 添加相应拦截器可以对返回数据或者错误做统一处理
ajax.interceptors.response.use(resp => {
  // http状态码以2或者3开头，执行成功的回调

  return resp.data // 那边找的路径可以少些一层data
}, error => {
// 以4或5开头，执行失败的回调
  if (error.response.status === 401) {
    // token过期两种解决方法
  // 1.重新登录  先清空
    store.commit('setToken', '')
    // 跳转到登录页面重新登录
    router.response({
      path: '/login'
    })
  // 2.token续签
  }

  return Promise.reject(error)
})
export default ajax
